
/**
 * Funcion que solo permite el paso de numeros o del caracter "punto" a la entrada de un input de tipo numerico.
 * Su uso generico esta reflejado en la tag numberInput.tag
 * @param {Object} e
 * @return {TypeName} 
 */
function keypress_checkNumber(e){
	key = (document.all) ? e.keyCode : e.which;//obtenemos el codigo ascii de la key
	if (key==8 || key ==9 || key == 0 || key == 45/*menos*/) 
		return true;//backspace en ascii es 8
	//Si es numero se acepta
	if(key >= 48 && key <= 57){
		return true;
	}
	//Si es un punto se acepta
	if(key==46){
		return true;
	}

	return false;
}
/**
 * Funcion que chequea resultante al terminar de pulsar una tecla sobre un input de tipo numerico (numberinput.tag)
 * Si el resultado a posteriori no es numero en el formato correcto recupera de un input oculto auxiliar el valor
 * anteriormente establecido y lo vuelve a escribir sobre el input invalidando la ejecucion del evento.
 * @param {Object} textItem
 * @param {Object} maxInteger
 * @param {Object} maxDecimal
 */
function keyup_checkNumber(textItem, maxInteger, maxDecimal){
	var expresion;
	if(maxDecimal == 0){
			expresion = new RegExp("^-?(|([0-9]{1," +maxInteger +"}?))$");
	}else{
		expresion = new RegExp("^-?(|([0-9]{1," +maxInteger +"}(\\.([0-9]{1,"+maxDecimal+"})?)?))$"); 
	}
	if(maxDecimal != 0){
     //si comienza con un punto, le agregamos un cero
     	if(textItem.value.substring(0,1) == '.'){ 
			textItem.value = '0' + textItem.value;
		}
	}
     //si no cumples las reglas, no te dejo escribir
     if(!expresion.test(textItem.value)){
         textItem.value = $("#" + textItem.id + "_numeric").val();
     }else{
         $("#" + textItem.name +"_numeric").val(textItem.value);
     }
}//end function revisaCadena 	
/**
 * Funcion que chequea resultante al terminar de pulsar una tecla sobre un input de tipo numerico (numberinput.tag)
 * Si el resultado a posteriori no es numero en el formato correcto recupera de un input oculto auxiliar el valor
 * anteriormente establecido y lo vuelve a escribir sobre el input invalidando la ejecucion del evento.
 * @param {Object} textItem
 * @param {Object} maxInteger
 * @param {Object} maxDecimal
 */
function keyup_checkNumberId(textItem, maxInteger, maxDecimal){
	var expresion;
	if(maxDecimal == 0){
		expresion = new RegExp("^-?(|([0-9]{1," +maxInteger +"}?))$");
	}else{
		expresion = new RegExp("^-?(|([0-9]{1," +maxInteger +"}(\\.([0-9]{1,"+maxDecimal+"})?)?))$"); 
	}
	if(maxDecimal != 0){
		//si comienza con un punto, le agregamos un cero
		if(textItem.value.substring(0,1) == '.'){ 
			textItem.value = '0' + textItem.value;
		}
	}
	//si no cumples las reglas, no te dejo escribir
	if(!expresion.test(textItem.value)){
		textItem.value = $("#" + textItem.id + "_numeric").val();
	}else{
		$("#" + textItem.id +"_numeric").val(textItem.value);
	}
}//end function revisaCadena 	